import {insertUserProfile,getUserProfileById,updateUserProfile,deleteUserProfileById} from "@/services/sqlite/chat-user"
import {ChatUserProfileType} from "@/types/user-profile";


/**
 * 用于操作用户信息的 Actions
 */
export const useChatUserActions = () => {

    /**
     * 创建或更新用户信息。
     * 此函数会先检查用户是否存在，然后调用相应的数据库操作，并更新内存缓存。
     * @param profile 要创建或更新的用户信息
     */
    async function upsertProfile(profile: ChatUserProfileType) {
        try {
            const oldProfile = await getUserProfileById(profile.id);
            if (oldProfile) {
                await updateUserProfile(oldProfile, profile);
            } else {
                await insertUserProfile(profile);
            }
        } catch (error) {
            console.error("创建或更新用户信息失败:", error);
            throw error;
        }
    }

    /**
     * 删除用户信息。
     * @param id 要删除的用户ID
     */
    async function deleteProfileById(id: string) {
        try {
            await deleteUserProfileById(id);
        } catch (error) {
            console.error("删除用户信息失败:", error);
            throw error;
        }
    }

    return {
        upsertProfile,
        deleteProfileById
    };
};